Data Authenticator for the Deployable Seismic Verification System


[123]

APPENDIX R

Message Formats and Protocol


[124]

                                                      12/17/89 whp



              AUTHENTICATOR MESSAGE FORMATS AND PROTOCOL



  Frame Start is activated through -INTO.  This causes the current
  key to be loaded into the V and F registers and R cleared.  Frame
  Start in progress is indicated by a Oscillator Busy status.

  Data sent to the authenticator activates -INT1.  Data should only
  be sent to the authenticator when the -INT1 bit in the status
  byte is clear.  The Data Ready status bit indicates that valid
  data is available.  Data Ready is cleared when the byte is read.

  A clear Software Busy bit of the status byte, bit 4, indicates
  that the authenticator is ready to receive a message.  The
  authenticator reads the Data in byte at offset 5 and discards it
  prior to clearing the Software Busy bit.



  SEND and RECEIVE Message Format

  Bytes         Name               Comment

  1             LENGTH             Character count of all
                                   characters in message.

  1             OPCODE             Message type

  0-251         DATA               Optional data bytes

  2             CRC                Crc checksum



  All authenticator checksum computations use the IBM SDLC checking
  polynomial x16+x12+x5+1.



[125] AUTHENTICATOR KEY STORAGE DATA STRUCTURES Offset Name Comments 0 Status bit Active 0's 0 key initialized 1 key in use 2 key deactivated 3 not used 4 not used 5 not used 6 not used 7 key checksum failed 1 V1 High byte V register 2 V0 Low byte V register 3 F7 Highest byte F register 4 F6 5 F5 6 F4 7 F3 8 F2 9 F1 10 F0 Lowest byte F register. Bit 0 is unused and set to 0. Bit 0 is the lowest bit. 11 CRC1 High byte of CRC of V and F keys 12 CRC0 Low byte of CRC 13 DI6 Year key initialized 14 DI5 Month key initialized 15 DI4 Day key initialized 16 DI3 Day of week key initialized 17 DI2 Seconds key initialized 18 DI1 Minute key initialized 19 DI0 Hour key initialized 20 DS6 Year key activated 21 DS5 Month key activated 22 DS4 Day key activated 23 DS3 Day of week key activated 24 DS2 Seconds key activated 25 DS1 Minute key activated 26 DS0 Hour key activated 27 DE6 Year key deactivated 28 DE5 Month key deactivated 29 DE4 Day key deactivated 30 DE3 Day of week key deactivated 31 DE2 Seconds key deactivated 32 DE1 Minute key deactivated 33 DE0 Hour key deactivated 34 FC3 Highest byte software frame counter 35 FC2 36 FC1 37 FC0 Lowest byte software frame counter
[126] AUTHENTICATOR MESSAGES Acknowledge/Negative Acknowledge reaponse RECEIVE The message is sent as a response to a short, long, or incorrect checksum message. It may be used with zero status as an positive acknowledgment. Offset Name Comments 0 5 Length 1 0 Opcode 2 status 0=okay 1=bad checksum 2=short message 4=long message 8=unknown opcode 3 crc high 4 crc low
[127] Send Frame Count SEND Offset Name Comments 0 4 Length 1 1 Opcode 2 crc high 3 crc low Response Offset Name Comments 0 8 Length 1 1 Opcode 2 FC3 high byte 3 FC2 4 FCl 5 FC0 low byte 6 crc high 7 crc low
[128] Set time SEND Offset Name Comments 0 11 Length 1 2 Opcode 2 hours Mask with hex 80 for PM. 3 minutes 4 seconds 5 day of week 6 month 7 day 8 year 9 crc high 10 crc low Time formats in RCA 7170 clock/calendar formats Response Message number 0 with zero status.
[129] Send Time SEND Offset Name Comments 0 4 Length 1 3 Opcode 2 crc high 3 crc low Response Offset Name Comments 0 11 Length 1 3 Opcode 2 hours Mask with hex 80 for PM. 3 minutes 4 seconds 5 day of week 6 month 7 day 8 year 9 crc high 10 crc low Time formats in RCA 7170 clock/calendar formats
[130] Send Authenticator program identification SEND Offset Name Comments 0 4 Length l 4 Opcode 2 crc high 3 crc low Response Offset Name Comments 0 12 Length 1 4 Opcode 2 NO Name in ASCII 3 N1 4 N2 5 N3 6 N4 7 N5 8 N6 9 N7 10 crc high 11 crc low
[131] Send EEPROM tracking data SEND Offset Name Comments 0 4 Length l 5 Opcode 2 crc high 3 crc low Response Offset Name Comments 0 68 Length 1 5 Opcode 2 ET0 byte 0 3 ET1 byte 1 . . . . . . 65 ET63 byte 63 66 crc high 67 crc low
[132] Send program checksum SEND Offset Name Comments 0 4 Length 1 6 Opcode 2 crc high 3 crc low Response Offset Name Comments 0 6 Length 1 6 Opcode 2 PCRC1 High byte program checksum 3 PCRC0 Low byte program checksum 4 crc high 5 crc low
[133] Send installed key # Offset Name Comments 0 4 Length 1 7 Opcode 3 crc high 4 crc low Response Offset Name Comments 0 7 Length 1 7 Opcode 2 KS Key Status 0=key installed 1=no key installed 2=user key installed 3 KEY1 High byte key number 4 KEY0 Low byte key number 5 crc high 6 crc low
[134] Install key SEND Offset Name Comments 0 6 Length 1 8 Opcode 2 KEY1 High byte key number 3 KEY0 Low byte key number 4 crc high 5 crc low Response Offset Name Comments 0 5 Length 1 8 Opcode 2 KEYSTAT 0=installed 1=key not initialized 2=key deactivated 4=key checksum fail 8=key already installed 3 crc high 4 crc low
[135] Bulk erase EEPROM SEND Offset Name Comments 0 4 Length 1 9 Opcode 3 crc high 4 crc low Response Offset Name Comments 0 5 Length 1 9 Opcode 2 status 0=erase to all hex FF's 1=did not erase 3 crc high 4 crc low
[136] Erase Authenticator write buffer SEND Offset Name Comments 0 5 Length 1 l0 Opcode 2 crc high 3 crc low Response Message number 0 with 0 status.
[137] Send key data SEND Offset Name Comments 0 6 Length 1 11 Opcode 2 KEY1 High byte key number 3 KEY0 Low byte key number 4 crc high 5 crc low
[138] Send key data Response The V and F register data is zero if the key status is "key initialized" or "key in use". Offset Name Comments 0 44 Length 1 11 Opcode 2 KEY1 High byte key number 3 KEY0 Low byte key number 4 Status bit Active 0's 0 key initialized 1 key in use 2 key deactivated 3 not used 4 not used 5 not used 6 not used 7 key checksum failed 5 Vl High byte V register 6 V0 Low byte V register 7 F7 Highest byte F register 8 F6 9 F5 10 F4 11 F3 12 F2 13 Fl 14 F0 Lowest byte F register. Bit 0 is unused and set to 0. Bit 0 is the lowest bit. 15 CRC1 High byte of CRC of V and F keys 16 CRC0 Low byte of CRC 17 DI6 Year key initialized 18 DI5 Month key initialized 19 DI4 Day key initialized 20 DI3 Day of week key initialized 21 DI2 Seconds key initialized 22 DI1 Minute key initialized 23 DI0 Hour key initialized 24 DS6 Year key activated 25 DS5 Month key activated 26 DS4 Day key activated 27 DS3 Day of week key activated 28 DS2 Seconds key activated 29 DS1 Minute key activated 30 DS0 Hour key activated
[139] Send key data 31 DE6 Year key deactivated 32 DE5 Month key deactivated 33 DE4 Day key deactivated 34 DE3 Day of week key deactivated 35 DE2 Seconds key deactivated 36 DE1 Minute key deactivated 37 DE0 Hour key deactivated 38 FCO Highest byte software frame 39 FC1 counter 40 FC2 41 FC3 Lowest byte software frame counter 42 crc high 43 crc low
[140] Unsolicited Message Start SEND The authenticator prompts for permission to send a message by setting the Poll Authenticator bit, bit 3, in the status byte. The authenticator wishes to transmit an unsolicited messaqe. The authenticator does not send the message until the Unsolicited Message Start is sent to it. Make sure the Data Out Ready bit is the status register is clear before sending this message. This bit is cleared by reading the Data Out register at offset 5 Offset Name Comments 0 4 Length 1 12 opcode 3 FE hex crc high 4 B7 hex crc low If the message explains an Authenticator fatal message, then the D register offline bit is set and hardware authentication stopped.
[141] Install key SEND Install the key in the EEPROM or RAM. The key number must be in the range 0 to maximum number of keys held in the key EEPROM. Or it must be in the range -1 to the minus the maximum number of user keys held in RAM. Offset Name Comments 0 18 Length 1 13 Opcode 2 KEY1 High byte key number 3 KEY0 Low byte key number 4 V1 High byte V register 5 V0 Low byte V register 6 F7 Highest byte F register 7 F6 8 F5 9 F4 10 F3 11 F2 12 F1 13 F0 Lowest byte F register. Bit 0 is unused and set to 0. Bit 0 is the lowest bit. 14 CRC1 High byte of CRC of V and F keys 15 CRC0 Low byte of CRC counter 16 crc high 17 crc low
[142] Install key Response Offset Name Comments 0 5 Length 1 13 Opcode 2 status O=okay 1=bad checksum 2=short message 4=long message 8=key # < 0 10=key # > maximum allowed 20= EEPROM write error 3 crc high 4 crc low
[143] AUTHENTICATOR INTERNAL MEMORY SPACE ALLOCATION Hex Address Contents 30 8051 hardware stack. At software initialization location 81, SP, contains 2F. The hardware stack expands upward. Hex Address Contents 2F X7L 2E X7H 2D X6L 2C X6H 2B X5L 2A X5H 29 X4L 28 X4H 27 X3L 26 X3H 25 X2L 24 X2H 23 X1L 22 X1H 21 X0L 20 X0H X0, X1, X2, and X3 are for operating system temporary storage. X4 through X7 are user definable.
[144] AUTHENTICATOR INTERNAL MEMORY SPACE ALLOCATION 1F R7 Frame counter low byte 1E R6 Frame counter 1D R5 Frame counter 1C R4 Frame counter high byte 1B R3 Key # low byte 1A R2 Key # high byte 19 R1 V1 high byte 16 Bank 3 R0 V0 low byte 17 R7 F7 high byte 16 R6 F6 15 R5 F5 14 R4 F4 13 R3 F3 12 R2 F2 11 R1 F1 10 Bank 2 R0 F0 low byte 0F R7 Used for M*, U/, (FIND) 0E R6 Used for M*, U/, (FIND) 0D R5 Used for M*, U/, (FIND) 0C R4 Used for M*, U/, (FIND) 0B R3 Used for M*, U/, (FIND) 0A R2 Used for M*, U/, (FIND) 09 R1 Used for M*, U/, (FIND) 08 Bank 1 R0 Used for M*, U/, (FIND) 07 R7 FORTH RP 06 R6 FORTH RP 05 R5 FORTH SP 04 R4 FORTH SP 03 R3 FORTH IP 02 R2 FORTH IP 01 R1 FORTH W 00 Bank 0 R0 FORTH W also temporary assembler stack pointer Key # of the current key, V and F, installed in internal RAM locations 10-19. Key # 0 indicates no key installed.